home *** CD-ROM | disk | FTP | other *** search
/ PC Media 23 / PC MEDIA CD23.iso / share / prog / anubis / mouse.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-23  |  4.3 KB  |  134 lines

  1. // ==============================================================================
  2. /* Libreria: MOUSE.H
  3. ** (C) Anubis Software
  4. ** Escrito el 4 de Febrero 1994
  5. ** Esta librería sirve para controlar el raton, Utiliza las interrupciones
  6. ** de gestión del ratón para hacer su trabajo.
  7. */
  8. // ===============================================================================
  9.  
  10. #ifndef MOUSE.H
  11. #define MOUSE.H
  12.  
  13.  
  14. /* NOTAS:
  15. ** ------
  16. ** 1.- Al utilizar la optimización del compilador FASTEST CODE, no es conveniente
  17. ** utilizar la interrupción del ratón, pues el computador se cuelga. ]:-)
  18. */
  19.  
  20. /* --------------------------------------------+
  21. ** Inclusión de las librerias de Borland C++   |
  22. ** --------------------------------------------+
  23. */
  24. #include <dos.h>
  25. #include <stdio.h>
  26. #include <stdlib.h>
  27.  
  28.  
  29. /* ----------------------------------------------+
  30. ** Inclusión de las librerías de Anubis Software |
  31. ** ----------------------------------------------+
  32. */
  33. #include "mdefs.h"
  34.  
  35.  
  36. /* -----------------------------------------+
  37. ** Definición de constantes de la librería  |
  38. ** -----------------------------------------+
  39. */
  40. #define BUTTON_LEFT              1
  41. #define BUTTON_RIGHT             2
  42. #define BUTTON_MIDDLE            4
  43. /* Constantes de eventos del ratón
  44. */
  45. #define MOVER_RATON              1
  46. #define PULSAR_IZQUIERDO         2
  47. #define SOLTAR_IZQUIERDO         4
  48. #define PULSAR_DERECHO           8
  49. #define SOLTAR_DERECHO          16
  50. #define SHIFT_PULSADO           32
  51. #define CTRL_PULSADO            64
  52. #define ALT_PULSADO            128
  53. #define PULSAR_CENTRO           32
  54. #define SOLTAR_CENTRO           64
  55. #define DOBLE_CLICK_DERECHO    256
  56. #define DOBLE_CLICK_IZQUIERDO  512
  57.  
  58. #define MOUSE_INICIALIZADO       1
  59. #define MOUSE_NO_INICIALIZADO    0
  60.  
  61. // -------------------------------------------------+
  62. // Definición de tipos utilizados por la librería   |
  63. // -------------------------------------------------+
  64.  
  65. // La estructura puntero, se usa para definir punteros gráficos de ratón
  66. // los campos despx y despy se usan para localizar el desplazamiento efectivo
  67. // del punto válido del raton. Se miden a partir de la esquina superior
  68. // izquierda, y su valor debe estar comprendido entre 1 y 16
  69. // La zona de memoria BUFFER, contiene dos dibujos del ratón, la primera
  70. // zona de 16 WORD's debe tener la máscara con AND. Y la segunda, debe tener
  71. // la máscara con XOR.
  72. typedef struct puntero  {
  73.    WORD despx;
  74.    WORD despy;
  75.    WORD buffer[32];
  76. } PUNT_RATON;
  77.  
  78. // La estructura mouse, se utiliza para sintetizar el paso de parámetros
  79. // en algunas de las funciones asociadas.
  80. typedef struct mouse  {
  81.     int posx;
  82.     int posy;
  83.     int estado;
  84. } MOUSE_INFO;
  85.  
  86.  
  87. /* --------------------------------------------------+
  88. // Declaración de variables globales de la librería  |
  89. // --------------------------------------------------+
  90. */
  91. extern volatile WORD    mousex,mousey,estado,mouse_evento;
  92. extern int              double_click_delay;
  93.  
  94. // ------------------------------------------------------------+
  95. // Declaración e implementación de las rutinas de la librería  |
  96. // ------------------------------------------------------------+
  97. void ConvertMouse(void);
  98. void EventMouseFastExecution(void);
  99. void EventMouseExecution(void);
  100. void EventMouseFinFastExecution(void);
  101. void EventMouseFinExecution(void);
  102. void EventMouseSkipFastExecution(void);
  103. void EventMouseSkipExecution(void);
  104. #ifndef __SC__
  105. void EventEmpilaMouseFastRutina(void far (*)(void));
  106. void EventEmpilaMouseRutina(void far (*)(void));
  107. #else
  108. void EventEmpilaMouseFastRutina(void (far *)(void));
  109. void EventEmpilaMouseRutina(void (far *)(void));
  110. #endif
  111. void EventDesempilaMouseFastRutina();
  112. void EventDesempilaMouseRutina();
  113. int  InitMouse(int );
  114. void MouseOff(void);
  115. void show_mouse(void);
  116. void ide_mouse(void);
  117. void pos_mouse(int ,int );
  118. void tasa_int_mouse(int);
  119. void pagina_mouse(int )  ;
  120. struct mouse inf_mouse(void);
  121. int boton_mouse(void);
  122. struct mouse inf_suelta_mouse(int ,int *, int  *,int  *);
  123. struct mouse inf_pulsa_mouse(int ,int *, int *,int *);
  124. void init_mouse(void);
  125. void init_double_click (void);
  126. int test_double_click(void);
  127. void limit_horizontal_area_raton(int ,int );
  128. void seleccionar_puntero_texto(int ,int ,int );
  129. void cambiar_puntero_grafico(PUNT_RATON );
  130. PUNT_RATON leer_puntero_raton(char *);
  131. void grabar_puntero_raton (char *, PUNT_RATON );
  132.  
  133. #endif
  134.